//===============================================================================
// Microsoft patterns & practices
// Guidance Explorer Offline Client
//===============================================================================
// Copyright  Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================



using System.Collections.Generic;
//using GuidanceExplorer.WorkItems;
using System.ComponentModel;
using GuidanceExplorer.Model;

namespace GuidanceExplorer.Services
{
    public interface IAsyncLoadLibrariesService
    {
        /// <summary>
        /// Process the items across the entire Guidance.
        /// </summary>
        /// <param name="guidance">The root guidance model.</param>
        /// <param name="bw">Step for the progress bar.</param>
        void ProcessGuidance(Guidance library, BackgroundWorker bw);

        /// <summary>
        /// Process the file for the item, load the metadata and read the contents.
        /// </summary>
        /// <param name="reference">The guidance item file reference to process</param>
        void ProcessGuidanceItemFile(GuidanceItemFileReference reference);

        /// <summary>
        /// Process a single library.
        /// </summary>
        /// <param name="library"></param>
        /// <param name="performStep"></param>
        /// <param name="warnings"></param>
        void ProcessLibrary(Library library, BackgroundWorker bw, List<string> warnings);
    }
}

